package it.mercatino.command;

import it.mercatino.hibernate.Ordine;

/**
 * Comando per l'aggiornamento dello stato di un ordine.<br>
 * Usa un oggetto CambioStato come receiver.
 * 
 * @author Marco
 * 
 * @see Command
 * 
 * @see CambioStato
 *
 */
public class AggiornaStatoOrdine implements Command {
	
	private Ordine ordine;
	private int stato;
	private String motivazione;
	private CambioStato receiver;

	/**
	 * @param ordine
	 * @param stato
	 * @param motivazione
	 * @param receiver
	 */
	public AggiornaStatoOrdine(Ordine ordine, int stato,
			String motivazione, CambioStato receiver) {
		this.ordine = ordine;
		this.stato = stato;
		this.motivazione = motivazione;
		this.receiver = receiver;
	}

	@Override
	public void execute() {
		
		receiver.aggiornaStatoOrdine(ordine, stato, motivazione);		
	}

	/**
	 * @return the ordine
	 */
	public Ordine getOrdine() {
		return ordine;
	}

	/**
	 * @param ordine the ordine to set
	 */
	public void setOrdine(Ordine ordine) {
		this.ordine = ordine;
	}

	/**
	 * @return the stato
	 */
	public int getStato() {
		return stato;
	}

	/**
	 * @param stato the stato to set
	 */
	public void setStato(int stato) {
		this.stato = stato;
	}

	/**
	 * @return the motivazione
	 */
	public String getMotivazione() {
		return motivazione;
	}

	/**
	 * @param motivazione the motivazione to set
	 */
	public void setMotivazione(String motivazione) {
		this.motivazione = motivazione;
	}

	/**
	 * @return the receiver
	 */
	public CambioStato getReceiver() {
		return receiver;
	}

	/**
	 * @param receiver the receiver to set
	 */
	public void setReceiver(CambioStato receiver) {
		this.receiver = receiver;
	}

}
